package com.avic.process;

import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.osgi.framework.BundleContext;

/**
 * The activator class controls the plug-in life cycle
 */
public class Activator extends AbstractUIPlugin {

	// The plug-in ID
	public static final String PLUGIN_ID = "com.avic.process"; //$NON-NLS-1$

	// The shared instance
	private static Activator plugin;

	/**
	 * The constructor
	 */
	public Activator() {
	}
	
	public void start(BundleContext context) throws Exception {
		super.start(context);
		plugin = this;
		earlyStartup();
	}

	public void earlyStartup() {
//		Display.getDefault().asyncExec(new Runnable() {
//			public void run() {
//				final IWorkbenchWindow workbenchWindow = PlatformUI
//						.getWorkbench().getActiveWorkbenchWindow();
//				if (workbenchWindow == null) {
//					return;
//				}
//				workbenchWindow.addPerspectiveListener(new PerspectiveAdapter() {
//					@Override
//					public void perspectiveActivated(
//							IWorkbenchPage page,
//							IPerspectiveDescriptor perspective) {
//						super.perspectiveActivated(page, perspective);
//						if (!perspective
//								.getId()
//								.equals("com.teamcenter.rac.cme.mpp.MSEPerspective")) {
//							return;
//						}
//						String viewId = "com.avic.process.views.ProcessView";
//						IViewPart view = page.findView(viewId);
//						if (null != view) {
//							page.hideView(view);
//						}
//						try {
//							page.showView(viewId);
//						} catch (PartInitException e) {
//							// TODO Auto-generated catch block
//							e.printStackTrace();
//						}
//					}
//				});
//			}
//		});
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see
	 * org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext
	 * )
	 */
	public void stop(BundleContext context) throws Exception {
		plugin = null;
		super.stop(context);
	}

	/**
	 * Returns the shared instance
	 * 
	 * @return the shared instance
	 */
	public static Activator getDefault() {
		return plugin;
	}

}
